iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0

前言

在寫程式的過程中,錯誤一定會發生,例如使用者輸入了不正確的數字、檔案不存在、網路連線中斷…
如果我們沒有處理這些狀況,程式可能會直接「爆掉」並結束執行。為了避免這種狀況,C# 提供了 例外處理 (Exception Handling) 機制,讓我們能 捕捉錯誤並妥善處理,而不是讓程式崩潰。基本語法:try-catch-finally,如下:

try
{
    // 可能發生例外的程式碼
}
catch (Exception ex)
{
    // 當例外發生時要處理的程式碼
}
finally
{
    // 無論有沒有發生例外,最後一定會執行的程式碼(可選)
}

C# 語言的例外處理功能可以幫助你處理程式執行時發生的任何非預期或特殊狀況。例外處理使用 try、catch 和 finally 關鍵字:

  • try:嘗試執行可能失敗的動作。
  • catch:在發生錯誤時,根據情況來處理。
  • finally:不論是否發生錯誤,都會執行,用於釋放資源或做後續清理。

在許多情況下,例外可能並不是由你的程式碼直接呼叫的方法拋出的,而是由呼叫堆疊中更深層的方法拋出。當例外發生時:

  • CLR 會開始回溯呼叫堆疊 (unwind the stack)。
  • 它會尋找一個含有對應例外型別的 catch 區塊的方法。
  • 找到的第一個符合的 catch 區塊會被執行。
  • 如果整個呼叫堆疊都找不到合適的 catch 區塊,CLR 就會終止程序,並向使用者顯示錯誤訊息。
public class ExceptionTest
{
    static double SafeDivision(double x, double y)
    {
        if (y == 0)
            throw new DivideByZeroException();
        return x / y;
    }

    public static void Main()
    {
        // Input for test purposes. Change the values to see
        // exception handling behavior.
        double a = 98, b = 0;
        double result;

        try
        {
            result = SafeDivision(a, b);
            Console.WriteLine($"{a} divided by {b} = {result}");
        }
        catch (DivideByZeroException)
        {
            Console.WriteLine("Attempted divide by zero.");
        }
    }
}

上一篇
Day15-第一個C#小專案練習
下一篇
Day17- LINQ 基礎
系列文
30 天從 Python 轉職場 C# 新手入門26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言